class Util{
     uuid() {
      var s = [];

      var hexDigits = "0123456789abcdef";
    
      for (var i = 0; i < 36; i++) {
    
        s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
    
      }
    
      s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
    
      s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
    
      s[8] = s[13] = s[18] = s[23] = "-";
  
      var uuid = s.join("").replace("-","");
    
      return uuid
    }
    uuid2(len, radix) { 
      var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); 
      var uuid = [], i; 
      radix = radix || chars.length; 
      
      if (len) { 
        // Compact form 
        for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix]; 
      } else { 
        // rfc4122, version 4 form 
        var r; 
      
        // rfc4122 requires these characters 
        uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; 
        uuid[14] = '4'; 
      
        // Fill in random data.  At i==19 set the high bits of clock sequence as 
        // per rfc4122, sec. 4.1.5 
        for (i = 0; i < 36; i++) { 
          if (!uuid[i]) { 
            r = 0 | Math.random()*16; 
            uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; 
          } 
        } 
      } 
      
      return uuid.join(''); 
  } 
}
export {Util}